export interface ProductModelInterface {
    id: number;
    name?: string;
    price?: any;
    description?: string;
    imageUrl?: string;
    disCount?: number;
    invalid?: number;
    createTime?: Date;
    hasActivity?: number;
    stageIntegral?: number;
    recommenderIntegral?: number;
    signInTime?: number;
    postage?: number;
    recommenderSignInTime?: number;
    type?: number;
    infoImageUrl?: string;
    purchaseLimit?: number;
    mentionIntegral?: number;
    integralDeductionPostage?: number;
    special?: number;
}
export interface UserProductRelationInterface {
    id:number;
    userId?:number;
    productId?:number;
    count?:number;

    collect?:number;
}
export interface ProductCategoryRelation {
    id:number;
    productId:number;
    categoryId?:number;
    products:ProductModelInterface
}

export interface ProductModelExtraInfoInterface extends ProductModelInterface {
    productExtraInfo: {
        id: number;
        saledCount?: number;
        favoriteCount?: number;
        productId?: number;
    }
}
export interface UserModelInterface {
    id?: number;
    openid?: string;
    password?: string;
    phone?: string;
    money?: any;
    qrCode?: string;
    shareCode?: string;
    withDrawnIntegral?: number;
    recommenderId?: number;
    nickName?: string;
    avatarUrl?: string;
    gender?: number;
    integral?: number;
    otherIntegral?: number;
    lastSignInDate?: Date;
    realInfoId?: number;
    bindingTime?: Date;
    searchedKeywords?: string;
    birthday?: Date;
    appOpenid?:string;
}
export interface UserVipInfoInterface {
    id:number;
    userId?:number;
    beginDate?:Date;
    endDate?:Date;
    level?:number;
    amountOfConsumption?:number;
}
export interface ShippingAddressInterface{
    id:number;
    name?:string;
    addressDetail?:string;
    phone?:string;
    isDefault?:number;
    userId:number;

}
export interface UserRealInfoInterface {
    id?:number;
    realName?:string;
    phone?:string;
    verificationCode?:string;
    idNumber?:string;
    idNegative?:string;
    idPositive?:string;
    bankAccount?:string;
    bankAddress?:string;
    bankAccountHolder?:string;
    status?:number;
}

export interface ProductCommentInterface {
    orderComment: orderCommentInterface
}

export interface orderCommentInterface {
    id: number;
    comment?: string;
    imageIds?: string;
    orderProductId: number;
    star?: number;
    createTime?: Date;
    userId?: number;
    user?: UserModelInterface
}

export interface ProductSpecificationInterface {
    id: number;
    name?: string;
    productId?: number;
    price?:number;

}
export interface ProductOrderRelationInterface extends ProductModelInterface{
    relation:{
        count:number
    }
}

export interface OrderModelInterface {
    id:number;
    createTime?:Date;
    shipmentNumber?:string;
    status?:number;
    userId?:number;
    shipmentId?:number;
    isMention?:number;
    totalPrice?:number;
    actuallyPaid?:number;
    finished?:number;
    payed?:number;
    logisticsCompany?:string;
    recommenderId?:number;
    postage?:number;
    shipped?:number;
    note?:string;
    products?:ProductOrderRelationInterface[],

}

export interface PageInterface {
    pageNum:number,
    pageSize:number

}

export interface CategoryInterface {
    id:number;
    name:string;

}

export interface StoreInterface {
    id:number;
    automaticReceipt?:number;
    fees?:number;
    mentionAddress?:string;
    storeName?:string;
    concatNumber?:string;
    normalTeamAward?:number;
    seniorTeamAward?:number;
    depositRatio?:number;

    phoneCustomerService?:string;
    phoneLogistics?:string;
    phoneInvestment?:string;
    companyAddress?:string;
    companyIntroduction?:string;
}
export interface ProductCategoryRelation {
    id:number;
    productId:number;

    categoryId?:number;
}

// table: fUserOutPoints
export interface UserOutPointsInterface {
    id:number;
    userId?:number;
    createTime?:Date;
    finished?:number;
    actuallyOutPoints?:number;
    feesScore?:number;
    invalid?:number;
    depositScore?:number;

}
// table: mSignInInfo
export interface SignInInfoAttribute {
    id:number;
    signInDate?:Date;
    outScore?:number;
    userId?:number;

}